In a semiconductor memory employing a PROM (programmable ROM), there is a case in which incorrect data is read from the structure of the PROM, because the PROM lowers its ability to maintain correct information.
Accordingly, a conventional semiconductor memory used in a high reliability system includes, in addition to the PROM for storing main data, an error correcting PROM for storing correcting data calculated based on contents of the main data PROM (referred to as "main PROM" hereinafter).
In the conventional semiconductor memory, the main data is corrected in accordance with the correcting data when the main data is read from the main PROM, so that correct data is supplied from the memory.
However, if correcting data is not proper, for instance, the correcting data does not correspond to the main PROM because a content of the main PROM is changed, faulty data is supplied from the semiconductor memory. To prevent the supply of faulty data, the contents of the error correcting PROM is required to be changed in accordance with the change of the main PROM, when, for instance, a debugging of a program for the main PROM is carried out.
According to the conventional semiconductor memory, therefore, there is a disadvantage in that a content of the error correcting PROM is necessary to be changed at each time when a content of the main PROM is changed. This is a very troublesome procedure.